package main

import (
	"fmt"
)

func main() {
	// 关键字type
	// 1.给类型定义别名 为什么会有byte，就是我为了强调我们现在处理的对象是字节类型
	// 这种别名实际上是为了代码的可读性，这个实际上还是uint8，无非就是在代码编码阶段可得性强而已
	type myByte = byte
	var b myByte
	fmt.Printf("%T\n", b) // unit8

	// 2. 第二种就是基于已有的类型定义一个新类型
	type myInt int
	var i myInt
	fmt.Printf("%T", i) // main.myInt

	// 3. 定义结构体
	type Course struct {
		name  string
		price int
	}

	// 4. 定义接口
	type Callable interface {
	}
	// 5. 定义函数别名
	type handle func(str string)
}
